package beans;
 
import entitys.Usuario;
import java.util.List;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import javax.faces.context.FacesContext;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
import javax.servlet.http.HttpServletRequest;
import utils.CriptografiaMD5;
import utils.JpaUtils;

/**
 *
 * @author Amauri
 */
@ManagedBean
@RequestScoped
public class Login {
    
    private String usuario;
    private String senha;
    private String mensagem;
    private final HttpServletRequest httpServletRequest;
    private final FacesContext facesContext;
    
    public Login(){
        facesContext = FacesContext.getCurrentInstance();
        httpServletRequest = (HttpServletRequest)facesContext.getExternalContext().getRequest();
    }
    
    public String EfetuaLogin()
    {
        EntityManager em = JpaUtils.getEntityManager();
        
        List<Usuario> usuario = em.createQuery("select u from Usuario u where u.usuario = '" + 
                this.getUsuario() + "' and u.senha = '" + CriptografiaMD5.criptografar(this.getSenha())+"'",
                Usuario.class
        ).getResultList();
        
        if (!usuario.isEmpty()){
            httpServletRequest.getSession().setAttribute("usuarioLogado", true);
            return "acesso/area_inicial.jsf?faces-redirect=true";
        }
        
        em.close();
        JpaUtils.close();
        
        this.setMensagem("Usuario ou senha incorreto!");
        
        return "index.jsf";
    }

    public String getSenha() {
        return senha;
    }

    public void setSenha(String senha) {
        this.senha = senha;
    }

    public String getUsuario() {
        return usuario;
    }

    public void setUsuario(String usuario) {
        this.usuario = usuario;
    }

    public String getMensagem() {
        return mensagem;
    }

    public void setMensagem(String mensagem) {
        this.mensagem = mensagem;
    }
}